Welcome to pandas!

6.12 索引排序

前面学习的df_sort_values()函数是对数据的排序,如果需要对索引排序,则使用df.sort_index()函数,它们的排序法则相同,只是参数上与df_sort_value()函数略有不同,结构如下:

df.sort_index(axis=0,level=None,ascending=True,inplace=False,kind=”quicksort”,np_position=”last”,sort_remaining=True,ingore_index=False,key=None)

axis:索引排序的方向,axis=0表示对行索引排序,axis=1表示对列索引排序;

level:指定排序的索引层,如果未指定,则按层级从高到低的顺序排序

ascending:指序指序的方式,升序还是降序,默认是升序排列。

inplace:就是修改;

kind:排序算法(一般不关注)

na_position:设置缺失值的显示位置。显示在最前用first,显示在最后用last;

sort_remaining:如果为True,且按级别和索引排序是多层,反之按指定级别排序也按其他级别(按顺序)排序;

ignore_index:是否重新设置表格索引

key:使用函数对索引自定义排序(重点关注)


import pandas as pd

df=pd.read_excel(r "D:\Pyobject2023\object\测试\素材\1.6.12 索引排序.xlsx" , index_col =[ 0,1 ])

print (df)

df1=df.sort_index( ascending =[ True,False ],

level =[ "类型","地区" ],

axis = 0 )

print (df1)

返回:

1季度 2季度 3季度 4季度
地区 类型
上海 Maya-动画 8 11 81 21
keynote-办公 10 40 45 74
成都 AI-设计 54 79 5 35
PS-设计 18 48 7 48
北京 PPT-办公 6 31 59 11
Excel-办公 14 89 50 8
3DS MAX-动画 3 50 33 56

1季度 2季度 3季度 4季度
地区 类型
北京 3DS MAX-动画 3 50 33 56
成都 AI-设计 54 79 5 35
北京 Excel-办公 14 89 50 8
上海 Maya-动画 8 11 81 21
北京 PPT-办公 6 31 59 11
成都 PS-设计 18 48 7 48
上海 keynote-办公 10 40 45 74

import pandas as pd

df=pd.read_excel(r "D:\Pyobject2023\object\测试\素材\1.6.12 索引排序.xlsx" , index_col =[ 0,1 ])

print (df)

df1=df.sort_index(

key = lambda s:s.str.len(),

ascending = True ,

level = "类型" ,

axis = 0 )

print (df1)

返回:

1季度 2季度 3季度 4季度
地区 类型
成都 AI-设计 54 79 5 35
PS-设计 18 48 7 48
北京 PPT-办公 6 31 59 11
上海 Maya-动画 8 11 81 21
北京 Excel-办公 14 89 50 8
上海 keynote-办公 10 40 45 74
北京 3DS MAX-动画 3 50 33 56